/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.jSkyRoom.finder;

import ru.jSkyRoom.factory.FinderByEdidFactory;
import ru.jSkyRoom.interfaces.major.Ammo;
import ru.jSkyRoom.interfaces.major.Armature;
import ru.jSkyRoom.interfaces.major.Armor;
import ru.jSkyRoom.interfaces.major.Book;
import ru.jSkyRoom.interfaces.major.Container;
import ru.jSkyRoom.interfaces.major.Dialog;
import ru.jSkyRoom.interfaces.major.Enchantment;
import ru.jSkyRoom.interfaces.major.EncounterZone;
import ru.jSkyRoom.interfaces.major.Faction;
import ru.jSkyRoom.interfaces.major.FormList;
import ru.jSkyRoom.interfaces.major.GlobalForm;
import ru.jSkyRoom.interfaces.major.ImageSpace;
import ru.jSkyRoom.interfaces.major.Ingredient;
import ru.jSkyRoom.interfaces.major.Keyword;
import ru.jSkyRoom.interfaces.major.LeveledCharacter;
import ru.jSkyRoom.interfaces.major.LeveledItemList;
import ru.jSkyRoom.interfaces.major.Miscellaneous;
import ru.jSkyRoom.interfaces.major.NPC;
import ru.jSkyRoom.interfaces.major.Outfit;
import ru.jSkyRoom.interfaces.major.Perk;
import ru.jSkyRoom.interfaces.major.Potion;
import ru.jSkyRoom.interfaces.major.Projectile;
import ru.jSkyRoom.interfaces.major.Quest;
import ru.jSkyRoom.interfaces.major.Race;
import ru.jSkyRoom.interfaces.major.Recipe;
import ru.jSkyRoom.interfaces.major.Scroll;
import ru.jSkyRoom.interfaces.major.Spell;
import ru.jSkyRoom.interfaces.major.Texture;
import ru.jSkyRoom.interfaces.major.Weapon;

/**
 *
 * @author Rakev
 */
public class FinderByEdidFacade {

    private final FinderByEdid<Armor> armoFinder;
    private final FinderByEdid<Weapon> weaponFinder;
    private final FinderByEdid<Enchantment> enchantmentFinder;
    private final FinderByEdid<LeveledItemList> leveledItemListFinder;
    private final FinderByEdid<Keyword> keyWordFinder;
    private final FinderByEdid<Armature> armatureFinder;
    private final FinderByEdid<FormList> formListFinder;
    private final FinderByEdid<Race> raceFinder;
    private final FinderByEdid<Texture> textureFinder;
    private final FinderByEdid<Ammo> ammoFinder;
    private final FinderByEdid<Potion> potionFinder;
    private final FinderByEdid<Book> bookFinder;
    private final FinderByEdid<Spell> spellFinder;
    private final FinderByEdid<Recipe> recipeFinder;
    private final FinderByEdid<Container> containerFinder;
    private final FinderByEdid<Dialog> dialogFinder;
    private final FinderByEdid<EncounterZone> encounterZoneFinder;
    private final FinderByEdid<NPC> npcFinder;
    private final FinderByEdid<Faction> factionFinder;
    private final FinderByEdid<GlobalForm> globalFormFinder;
    private final FinderByEdid<ImageSpace> imageSpaceFinder;
    private final FinderByEdid<Ingredient> ingredientFinder;
    private final FinderByEdid<LeveledCharacter> leveledCharacterFinder;
    private final FinderByEdid<Perk> perkFinder;
    private final FinderByEdid<Miscellaneous> miscellaneousFinder;
    private final FinderByEdid<Outfit> outfitFinder;
    private final FinderByEdid<Projectile> projectileFinder;
    private final FinderByEdid<Quest> questFinder;
    private final FinderByEdid<Scroll> scrollFinder;

    public static FinderByEdidFacade create() {
        return new FinderByEdidFacade(FinderByEdidFactory.create());
    }

    protected FinderByEdidFacade(FinderByEdidFactory finderFactory) {
        this.armoFinder = finderFactory.createArmorFinder();
        this.weaponFinder = finderFactory.createWeaponFinder();
        this.enchantmentFinder = finderFactory.createEnchantmentFinder();
        this.leveledItemListFinder = finderFactory.createLeveledItemListFinder();
        this.keyWordFinder = finderFactory.createKeywordFinder();
        this.armatureFinder = finderFactory.createArmatureFinder();
        this.formListFinder = finderFactory.createFormListFinder();
        this.raceFinder = finderFactory.createRaceFinder();
        this.textureFinder = finderFactory.createTextureFinder();
        this.ammoFinder = finderFactory.createAmmoFinder();
        this.potionFinder = finderFactory.createPotionFinder();
        this.bookFinder = finderFactory.createBookFinder();
        this.spellFinder = finderFactory.createSpellFinder();
        this.recipeFinder = finderFactory.createRecipeFinder();
        this.containerFinder = finderFactory.createContainerFinder();
        this.dialogFinder = finderFactory.createDialogFinder();
        this.encounterZoneFinder = finderFactory.createEncounterZoneFinder();
        this.npcFinder = finderFactory.createNPCFinder();
        this.factionFinder = finderFactory.createFactionFinder();
        this.globalFormFinder = finderFactory.createGlobalFormFinder();
        this.imageSpaceFinder = finderFactory.createImageSpaceFinder();
        this.ingredientFinder = finderFactory.createIngredientFinder();
        this.leveledCharacterFinder = finderFactory.createLeveledCharacterFinder();
        this.perkFinder = finderFactory.createPerkFinder();
        this.miscellaneousFinder = finderFactory.createMiscellaneousFinder();
        this.outfitFinder = finderFactory.createOutfitFinder();
        this.projectileFinder = finderFactory.createProjectileFinder();
        this.questFinder = finderFactory.createQuestFinder();
        this.scrollFinder = finderFactory.createScrollFinder();
    }

    public Armor findArmor(String edid) {
        return armoFinder.find(edid);
    }

    public Weapon findWeapon(String edid) {
        return weaponFinder.find(edid);
    }

    public Enchantment findEnchantment(String edid) {
        return enchantmentFinder.find(edid);
    }

    public LeveledItemList findLeveledItemList(String edid) {
        return leveledItemListFinder.find(edid);
    }

    public Keyword findKeyword(String edid) {
        return keyWordFinder.find(edid);
    }

    public Armature findArmature(String edid) {
        return armatureFinder.find(edid);
    }

    public FormList findFormList(String edid) {
        return formListFinder.find(edid);
    }

    public Race findRace(String edid) {
        return raceFinder.find(edid);
    }

    public Texture findTexture(String edid) {
        return textureFinder.find(edid);
    }

    public Ammo findAmmo(String edid) {
        return ammoFinder.find(edid);
    }

    public Potion findPotion(String edid) {
        return potionFinder.find(edid);
    }

    public Book findBook(String edid) {
        return bookFinder.find(edid);
    }

    public Spell findSpell(String edid) {
        return spellFinder.find(edid);
    }

    public Recipe findRecipe(String edid) {
        return recipeFinder.find(edid);
    }

    public Container findContainer(String edid) {
        return containerFinder.find(edid);
    }

    public Dialog findDialog(String edid) {
        return dialogFinder.find(edid);
    }

    public EncounterZone findEncounterZone(String edid) {
        return encounterZoneFinder.find(edid);
    }

    public Faction findFaction(String edid) {
        return factionFinder.find(edid);
    }

    public NPC findNPC(String edid) {
        return npcFinder.find(edid);
    }

    public GlobalForm findGlobalForm(String edid) {
        return globalFormFinder.find(edid);
    }

    public ImageSpace findImageSpace(String edid) {
        return imageSpaceFinder.find(edid);
    }

    public Ingredient findIngredient(String edid) {
        return ingredientFinder.find(edid);
    }

    public LeveledCharacter findLeveledCharacter(String edid) {
        return leveledCharacterFinder.find(edid);
    }

    public Perk findPerk(String edid) {
        return perkFinder.find(edid);
    }

    public Miscellaneous findMiscellaneous(String edid) {
        return miscellaneousFinder.find(edid);
    }

    public Outfit findOutfit(String edid) {
        return outfitFinder.find(edid);
    }

    public Projectile findProjectile(String edid) {
        return projectileFinder.find(edid);
    }

    public Quest findQuest(String edid) {
        return questFinder.find(edid);
    }

    public Scroll findScroll(String edid) {
        return scrollFinder.find(edid);
    }

}
